Cloud security is gaining increasing importance in many applications and services nowadays. All-or-Nothing Encryption AONE has immerged as one of the methods that can be used to strengthen confidentiality of data. The All-or-Nothing Encryption AONE provides semantic security of the data while ensuring that the data can only be recovered if and only if all the ciphertext blocks are available for download by a given client. As such All-or-Nothing Encryption AONE does not solely rely on the secrecy of the encryption but also requires that any adversary has access to all the data in order to acquire any meaningful bit of the input plaintext. Therefore, All-or-Nothing Encryption AONE ensures a transparent key management process and complements information dispersal techniques that can be used to efficiently store the data in a distributed storage like a cloud.
All-or-Nothing Encryption schemes are for example disclosed in the non-patent literature of R. Rivest, “All-or-Nothing Encryption and The Package Transform” in Proceedings of Fast Software Encryption, pages 210-218, 1997, in the non-patent literature of Anand Desai“, The Security of All-Or-Nothing Encryption: Protecting Against Exhaustive Key Search”, in Proceedings of CRYPTO, 2000 as well as in the non-patent literature of Ghassan Karame, Claudio Soriente, Krzysztof Lichota, Srdjan Capkun, Technical Report, available from: http://eprintiacr.org/2014/556.pdf.
Such an All-or-Nothing Encryption AONE may be performed by the following procedures. Key generation: On input a security parameter, the key generation algorithm outputs a key K. Encryption routine: On input plaintext p which is comprised of m blocks of size 1 bits each, and on input an encryption key K, the encryption routine AONEnc outputs n=m+1 blocks of ciphertext. Decryption routine. On input key K, and the entire ciphertext blocks, the decryption algorithm AONDec outputs the plaintext blocks p. If all ciphertext blocks are not available, then the decryption algorithm outputs NULL.
An All-or-Nothing Encryption AONE entails that each encryption block of the data depends on the data in its entirety, coming at odds with performing file updates. For example a plaintext file of size of 5 TB cannot be easily updated since it is not workable to simply decrypt and re-encrypt a entire 5 TB every time the new file update needs to be performed.
A conventional method is for example shown in FIG. 1. relying on the access control layer at the server side as a deterrent. However one of the drawbacks is that the notion of All-Or-Nothing is relaxed. Indeed, each block output by All-Or-Nothing Encryption only depends on the encryption of m/N other blocks therefore security of the encrypted data is not high.